1. Field of the Invention
The present invention relates to load balancing in a plurality of disk controllers or in a single disk controller. More specifically, the invention relates to load balancing in a disk system in which disk controllers and disk drives are interconnected by a network or a switch.
2. Description of the Related Art
In order to increase the performance and capacity of an already installed disk system, new disk controller and corresponding disk drives are added to the system. More specifically, if the performance of the system is important, the number of disk drives per one disk controller is set smaller to reduce the load of the disk controller, whereas if the capacity of the system is important, the number of disk drives per one disk controller is set larger. It is supposed that broad scalability of the performance and capacity of a disk system can be achieved if the system is configured by a plurality of disk controllers and disk drives.
However, the range of scalability in such a system is based upon the assumption that accesses to each disk controller and each volume in a disk drive occur uniformly. In practical use, however, the number of accesses is different at each disk controller and each volume, so that the load of each disk controller and volume is also different. This difference depends upon the type of an application running on a host computer, and changes with time even the same application is used. An example of this is a relation between an on-line transaction in daytime and a batch process in nighttime. Therefore, in the system configuration using a plurality of disk controllers, the loads of disk controllers become unbalanced so that it is difficult to effectively use the full power of all installed controllers.
As a means for eliminating such unbalance, a user or system engineer adjusts the loads, for example, by reallocating volumes and files between disk controllers. Namely, manual adjustment has been performed heretofore. It is therefore impossible to provide quick response to a change in the running state of a computer. Further, the reallocation process itself is a very heavy process taking a long time because a large amount of data transfer is performed via a host processor, resulting in many problems such as an increased host load. Furthermore, it is necessary to inhibit data renewal during the reallocation process in order to maintain data integrity. As above, such a reallocation process is associated with a number of problems in terms of system operation, e.g., an application utilizing data cannot be executed during the reallocation process until the completion of reallocation. Load unbalance is therefore inevitable for a conventional disk system using a plurality of disk controllers, and it is substantially impossible for a plurality of disk controllers to use the full performance thereof at the same time.
In contrast, a single disk controller is constituted of components such as a channel interface for interface with a host computer, a disk interface for interface with a disk drive, and a cache memory. These components of a single disk controller are interconnected by a means having a high interconnect performance such as a shared bus, and generally a plurality of channel interfaces and disk interfaces are used.
From this structural reason of a single disk controller, load balancing in the controller can be made easily. Specifically, a disk drive upon which accesses are concentrated is preferentially allocated with resources such as channel interfaces and caches in order to provide a best total performance of the disk controller. Namely, a disk system configured by a single disk controller is more resistant against load unbalance to be caused by different numbers of accesses, than a disk system configured by a plurality of disk controllers, if the systems have the same capacity, and in the former system, the reallocation process of files and volumes is not necessary.
In a system in which a shared-nothing type database management system runs on a loosely coupled processor system, a method of dynamically changing a connection between each processor and an external storage device to be accessed by the processor, is described in JPA-9-73411 (hereinafter referred to as “document 1”). This document 1, however, discloses only host load balancing, and does not disclose load balancing of a disk controller and host load reduction during file reallocation.
A method of migrating files between drives in accordance with an access occurrence frequency is disclosed in JP-A-3-294938 (hereinafter referred to as “document 2”). This document 2 does not disclose, however, reallocation of files without transferring them between drives.
Recently, the number of disk drives and the number of channel paths (paths to a host) to be managed by a single disk controller are increasing greatly because of an increased capacity of each disk drive and because of developments of disk array techniques. With current techniques, therefore, it is difficult to increase by a large degree the number of disk drives and the number of channel paths to be managed, while the configuration of a single disk controller is maintained. The reason for this will be described in the following. A disk controller performs communications with all components via a shared bus in order to provide a high interconnect performance. Therefore, if the number of components such as disk interfaces and channel interfaces increases as the storage capacity and the number of channel paths increase, the shared bus becomes a bottleneck.
In order to avoid a problem of performance to be restricted by such a bottleneck and improve the performance of a disk controller in a scalable manner, the configuration using a plurality of disk controllers and disk drives is essentially suitable.
However, as described earlier, a conventional system with the configuration described above cannot efficiently perform load balancing between disk controllers. In other words, a problem of load unbalance between disk controllers cannot be solved efficiently.
The essence of the problem of such load unbalance between disk controllers has been studied and the following points have been found.
The load unbalance state of the configuration using a plurality of disk controllers and drives will be described in the following. If accesses from a host are concentrated upon some of a plurality of disk drives and volumes connected to one disk controller which manages them, the load of the disk controller becomes excessive. In this case, it is assumed that the performance limit of the disk controller is lower than the performance limit of disk drives under management. Generally, one disk controller manages a number of disk drives. For example, if one disk controller manages ten disk drives and accesses are concentrated upon five disk drives, the disk controller generally enters an overload state before the disk drives enter an overload.
A conventional system incorporates a fixed correspondence among disk drives and volumes and disk controllers managing the volumes. Therefore, even if a disk driver or volume with less accesses is to be accessed, a disk controller having an overload is sometime used. In such a case, even if the target disk drive or volume has a low load, an access to this is required to stand by because an overload disk controller is used.
From the above studies, the following points become definite. Namely, an overload of a disk controller results from concentration of accesses from a host upon some disk drives or volumes managed by the disk controller, and this access concentration problem results from a fixed correspondence among disk drives and volumes and disk controllers managing the volumes.